﻿Public Class perProduto
    Inherits AcessoBd
    ReadOnly Property sqlConsulta(ByVal tipoProduto As Byte) As String
        Get
            Dim sSql As String
            sSql = "   SELECT codProduto as Código, " &
                   "          descProduto as Produto," &
                   "          descEmbalagem as Embalagem," &
                   "          quantEmbalagem as [Qte Embalagem]," &
                   "          descMarca as Marca" &
                   "     FROM produto"
            If tipoProduto > 0 Then
                sSql &= " WHERE  ltrim(substring(codProduto, 1,1)) = '" & tipoProduto & "'"
            End If
            sSql &= " ORDER BY descProduto"

            Return sSql
        End Get
    End Property

    Public Function selecionarProduto(ByVal sCodProduto As String) As DataTable
        Dim sSql As String
        Dim datRetorno As New DataTable

        Try
            sSql = " SELECT  " & Environment.NewLine &
                   "     0 as codRegiao," & Environment.NewLine &
                   "     '' as Regiao, " & Environment.NewLine &
                   "     0 as item, " & Environment.NewLine &
                   "    Produto.codProduto," & Environment.NewLine &
                   "	Produto.descProduto," & Environment.NewLine &
                   "	0 as forma," & Environment.NewLine &
                   "	0 as quantidade," & Environment.NewLine &
                   "	Produto.unidade," & Environment.NewLine &
                   "	produto.pesoBrutoUnitario," & Environment.NewLine &
                   "	0 as pesoTotal," & Environment.NewLine &
                   "	produto.ncm," & Environment.NewLine &
                   "	Cliente.Cnpj," & Environment.NewLine &
                   "	NCM.IPI," & Environment.NewLine &
                   "	produto.descMarca," & Environment.NewLine &
                   "	0 as valorMarca," & Environment.NewLine &
                   "	royalties.percentual," & Environment.NewLine &
                   "	Custo.valorCusto,  " & Environment.NewLine &
                   "	0 as valorUnitario," & Environment.NewLine &
                   "	0 as valorRoyalties," & Environment.NewLine &
                   "	0 as valorFrete," & Environment.NewLine &
                   "	0 as valorForma," & Environment.NewLine &
                   "	0 as valorIPI," & Environment.NewLine &
                   "	0 as valorICMS," & Environment.NewLine &
                   "	0 as valorPIS_COFINS " & Environment.NewLine &
                   " FROM Produto " & Environment.NewLine &
                   "	LEFT JOIN Cliente ON RTrim(LTrim(Produto.centroFornecedor)) = RTrim(LTrim(Cliente.codCliente))  " & Environment.NewLine &
                   "	LEFT JOIN Custo ON RTrim(LTrim(Produto.codProduto)) = RTrim(LTrim(Custo.codProduto))  " & Environment.NewLine &
                   "	LEFT JOIN NCM On Produto.Ncm = Ncm.ncm " & Environment.NewLine &
                   "	LEFT JOIN Royalties on RTrim(LTrim(produto.descMarca)) = RTrim(LTrim(Royalties.descMarca)) " & Environment.NewLine &
                   " WHERE RTrim(LTrim(Produto.codProduto)) = @CodProduto"

            With MyBase.SQLCmd.Parameters
                .Clear()
                .AddWithValue("@codProduto", sCodProduto.Trim)
            End With

            datRetorno = MyBase.executarConsulta(sSql)

            If datRetorno.Rows.Count > 0 Then
                Return datRetorno
            Else
                Return Nothing
            End If

        Catch ex As Exception
            Throw New Exception("Ocorreu um erro ao selecionar os dados do produto." & Environment.NewLine & ex.Message)
        End Try

    End Function

End Class
